import csv

class ArquivoCSV():

    def __init(self):

        self.arquivo_csv = ""
        self.dados_arquivo = []

    def __getattr__(self, name):

        if name == "arquivo_csv":
            return self.arquivo_csv

        elif name == "dados_arquivo":
            return self.dados_arquivo

        else:
            raise AttributeError, name

    def __setattr__(self, name, value):

        if name == "arquivo_csv":
           self.__dict__["arquivo_csv"]     = value

        elif name == "dados_arquivo":
            self.__dict__["dados_arquivo"]    = value

        else:
            raise AttributeError, name

    def openFile(self, file):
        try:
            csvFile = csv.reader(open(file, "rb"), delimiter=';')
            return csvFile

        except (Exception, IOError), e:
            print "Erro openFile: ", e
            raise

    def setupString(self, string):

        aux    = string
        aux = aux.replace('\'','')
        aux = aux.replace('\"','')
        aux = aux.replace('[','')
        aux = aux.replace(']','')
        aux = aux.strip()

        return aux

    def carregaDadosCSV(self):
        try:
            arquivo_csv = self.openFile(self.__getattr__("arquivo_csv"))
            lista = []

            for linhas in arquivo_csv:
                lista.append(linhas)

            for i in range(len(lista)):
                for j in range(3):
                    aux = self.setupString(lista[i][j])
                    lista[i][j] = aux
                    
            self.__setattr__('dados_arquivo', lista)
            return self.__getattr__('dados_arquivo')

        except (Exception) , e:
            print "Erro carregaDadosCSV ", e
            raise
